#pragma once

#include "imglib/imageclass_decl.h"

namespace refine {

namespace smooth_despill_known_back {

struct params {
	int whs; //smooth window half-size: 1, 2, 3, ...
	int passes_num; //top bound: 0 (no smoothing), 1, 2, 3, ...
	float max_condition_number; // should be greater than 1
	float blending_prob; //[0,1]
	bool silent;
	//loads default values
	params() {
		whs = 1;
		passes_num = 1;
		max_condition_number = 5;
		blending_prob = 1;
		silent = false;
	}
};

void perform(byte_image & im, byte_image const & back, params const & p = params());
void perform(argb_byte_image & im, argb_byte_image const & back, params const & p = params());

} //namespace smooth_despill_known_back

} //namespace refine
